#ifndef MYRECORD_H
#define MYRECORD_H

#include <vector>

template <typename _T> 
class myRecord
{

private:
	std::vector<_T> _feature;
	int _class;


public:
	
	//COSTRUTTORI
	//Default
	myRecord();
	
	//Copia
	myRecord(const myRecord& record);
	
	//Da una marice
	//myRecord(const cv::Mat_<_T>& record, int classe);

	// Operatore di assegnamento
	myRecord& operator= (const myRecord& record);	

	//FINE COSTRUTTORI

	//Numero delle feature del record
	int size();

	//Setta il valore delle feature
	void setFeatureVector(std::vector<_T> feature);
	
	//Ritorna il vettore delle feature
	std::vector<_T> getFeatureVector();

	//Aggiunge una feature al vettore
	void addFeature(_T feature);

	//Ritorna la feature i-esima
	_T getFeature(int position);
		
	//Ritorna la classe del record
	int getClass();

	//Setto la classe del record
	void setClass(int Class);

	typedef typename std::vector<_T>::iterator iterator;
	iterator begin() {
		return _feature.begin();
	}
	iterator end() {
		return _feature.end();
	}
};

#endif // IMAGE_H